package com.ddxz.hetong.mapper;

import com.ddxz.hetong.dto.ProjectDto;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

/**
 * description
 *
 * @author 朱宗刚
 * @version 1.0.0
 * @date 2022/7/9
 */

@Mapper
@Repository
public interface ProjectMapper {
    /**
     * 合同汇总信息
     * @return 汇总
     */
    ProjectDto getTotalMoney();

    /**
     * 获取单位汇总信息
     * @return 列表
     */
    Page<ProjectDto> getDeptList();

    /**
     * 获取支付年份汇总信息
     * @return 列表
     */
    Page<ProjectDto> getYearList();

    /**
     * 获取年份下的单位汇总信息
     * @param year 年份
     * @return 列表
     */
    Page<ProjectDto> getDeptByYear(@Param("year") Integer year);

    /**
     * 获取单位下的年份汇总信息
     * @param deptName 单位
     * @return 列表
     */
    Page<ProjectDto> getYearByDept(@Param("dept") String deptName);

    /**
     * 获取年份下的月份汇总信息
     * @param year 年份
     * @return 列表
     */
    Page<ProjectDto> getMonthByYear(@Param("year") Integer year);

    /**
     * 获取单位年份下的月份汇总
     * @param deptName 单位名称
     * @param year 年份
     * @return 列表
     */
    Page<ProjectDto> getMonthByDeptYear(@Param("dept") String deptName, @Param("year") Integer year);

    /**
     * 获取详情
     * @param deptName 单位名称
     * @param year 年份
     * @param month 月份
     * @param protoName 合同名称
     * @return 列表
     */
    Page<ProjectDto> getDetail(@Param("dept") String deptName, @Param("year") Integer year,
                               @Param("month") String month, @Param("proto") String protoName);

    /**
     * 获取合同维度的统计信息
     * @return 列表
     */
    Page<ProjectDto> getProtoList();
}
